Raw bit error rates of NAND flash memory are becoming poorer due to aggressive process scaling. To maintain the same level of reliability, conventional solid-state drive controllers are adopting error correction codes with soft decoding capability, such as low density parity check codes. The low density parity check codes provide good error correction by using soft inputs to aid in decoding decisions. The soft inputs are normally in the form of log likelihood ratio values. Since conventional flash devices do not provide soft decision values, the solid-state drive controllers have no natural values to utilize.